package semana4.matrices.ejercicios;

import java.util.Random;

public class Matrices10_InvertirDiagonalPrincipal {

	private int[][] matriz;
	private int[][] matrizInvertida;

	public Matrices10_InvertirDiagonalPrincipal() {
		inicializarMatriz();
		rellenarMatriz();
		mostrarMatriz(this.matriz);
		invertirDiagonal();
		System.out.println("Esta es la matriz con la diagonal principal invertida:");
		mostrarMatriz(this.matrizInvertida);
	}

	private void invertirDiagonal() {
		int columna = matriz.length - 1;
		int fila = matriz.length;

		copiarMatriz(matriz, matrizInvertida);
		for (int i = 0; i < fila; i++) {

			matrizInvertida[i][i] = matriz[columna][columna];
			columna--;
		}

	}

	private void copiarMatriz(int[][] matriz, int[][] copia) {
		int columnas = matriz[0].length;
		int filas = matriz.length;
		for (int i = 0; i < filas; i++) {
			for (int j = 0; j < columnas; j++) {
				copia[i][j] = matriz[i][j];
			}
		}

	}

	private void mostrarMatriz(int[][] m) {
		for (int i = 0; i < m.length; i++) {
			for (int j = 0; j < m[0].length; j++) {
				System.out.print(m[i][j] + "\t");
			}
			System.out.println();
		}
		System.out.println();
		System.out.println("--------------------------");

	}

	private void rellenarMatriz() {
		for (int i = 0; i < this.matriz.length; i++) {
			for (int j = 0; j < this.matriz[0].length; j++) {
				matriz[i][j] = (new Random().nextInt(25) + 1);
			}
		}

	}

	private void inicializarMatriz() {

		matriz = new int[5][5];
		matrizInvertida = new int[5][5];
	}

	public static void main(String[] args) {
		new Matrices10_InvertirDiagonalPrincipal();
	}

}
